A communication network is a geographically distributed collection of nodes interconnected by communication links and segments for transporting communications (e.g., data, voice, video) between communication units (end nodes), such as personal computers, certain telephones, personal digital assistants (PDAs), video units and the like. Many types of communication networks are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). LANs typically connect nodes over dedicated private communications links located in the same general geographical location, such as a building or campus. WANs, on the other hand, typically connect large numbers of geographically dispersed nodes over long-distance communications links, such as common carrier telephone lines. The Internet is an example of a WAN that connects networks throughout the world, providing global communication between nodes on various networks. The nodes typically communicate over the network by exchanging discrete frames or packets of data according to predefined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP). In this context, a protocol is a set of rules defining how the nodes interact with each other.
In some communication networks, such as the Internet, users (subscribers) gain access to a communication network via a service provider (SP). An SP is an entity, such as a business or organization, that offers access to various services provided by the entity, such as access to the communication network. SPs that provide access to the Internet and related services are commonly called Internet SPs (ISPs).
Some SPs, such as ISPs, charge their subscribers a fixed monthly fee for unlimited access to certain services provided by the SP, such as Internet access. The rationale here is that most users will make light usage of the service and thus not place great demands on the SP's network hardware and software resources. However, as certain high-bandwidth applications, such as peer-to-peer (P2P) applications and streaming video, gain popularity among subscribers, SPs are finding that more and more demand is being placed on their networks.
Service providers must find ways to deal with the challenges posed by the aggressive nature of P2P applications. Simply adding additional network capacity to the network may be costly and cumbersome to manage. Moreover, some networks are expensive to maintain and competition for subscribers is often fierce. Thus, some SPs find it difficult to maintain a solid margin and profit from their subscribers. Moreover, because certain subscribers may have unlimited access to the SPs' services, additional capacity added to the network in order to allocate additional bandwidth to these subscribers to accommodate their demands may be quickly consumed leaving strained SPs in the same situation.
One way SPs are addressing these issues is to monitor the usage of their networks to determine if certain applications are causing network congestion or increased expenditures and proactively act to restrain the effect of these applications. Moreover, SPs may seek to identify subscribers that are consuming an unacceptably large amount of network resources and either charge them for the excessive usage or potentially enforce various policies to limit their usage. For example, SPs may wish to provide tiered pricing plans whereby users who consume a great deal of resources are charged a different rate than users who consume fewer resources.
An SP may employ a service control engine (SCE) to control or monitor subscriber access to its network's resources. An SCE is a network device that is configured to, inter alia, monitor network traffic (data packets) transferred between a subscriber and an SP's network and enforce certain policies with regards to the monitored traffic. These policies may include filtering certain traffic e.g., limit usage of the SP's network by the subscribers. Traffic not filtered by the SCE is passed through the device. In a typical configuration, the SCE is positioned in a path taken by the traffic and acts as a “bump in the wire.” That is, it behaves in a manner that is “transparent” to the traffic carried on the path.
SCEs typically enforce policies by identifying the nature of network traffic, determining if a policy applies and enforcing the policy if necessary. The nature of the traffic is typically identified using a process known as a “deep packet inspection and analysis.” Deep packet inspection and analysis involves inspecting a packet at layers not normally inspected by other network devices (e.g., routers, bridges), such as the application layer which is layer-7 (L7) of the Open Systems Interconnection Reference Model (OSI-RM), and analyzing the inspected layers to identify the nature of the traffic (e.g., an application associated with the traffic). After identifying the nature of the traffic, the SCE can then decide how to act on (handle) the traffic.
For example, an SP may have a policy that limits the number of streaming video connections a particular subscriber may have active at any given time. The SP may employ an SCE to enforce this policy. Packets generated by subscribers are examined by the SCE using deep packet inspection and analysis to determine if they conform to the policy. If so, the SCE allows the packets to be transferred to their destination. If the packets do not conform to the policy, the SCE may filter the packets, respond to them or perform other steps as set forth by the policy. Thus, if a particular subscriber already has the limited number of video streams active and generates a packet to request an additional video stream, the SCE may filter the request and not let it proceed to its destination, respond to the request with an error message or take other action.
In addition to enforcing certain subscriber policies, SCEs may be configured to generally collect statistics of network usage. Thus, an SP may use an SCE to gather statistics regarding the type of applications that are being utilized on the SP's network. The SP may then use these statistics to better understand how subscribers use the SP's network and tailor services for those subscribers accordingly.